/**
 * Multiworker 2000
 * @brief Classe de conexão
 * @author André Luiz de Oliveira Vasconcelos
 * @file conexao.h
 * @date 2011
 */

#ifndef CONEXAO_H
#define CONEXAO_H

#include <QString>
#include <QMap>
#include <QSqlDatabase>
#include <QSqlError>
#include "mensagem.h"
#include <QObject>

class Conexao
{

public:
    Conexao();
    ~Conexao();

    // Setters e Getters
    void setBanco(QString);
    QString getBanco();
    void setServidor(QString);
    QString getServidor();
    void setUsuarioBanco(QString);
    QString getUsuarioBanco();
    void setSenhaUsuarioBanco(QString);
    QString getSenhaUsuarioBanco();

    Mensagem open();
    void close();
    void rollback();
    void commit();
    void rollbackAndClose();
    void commitAndClose();
    Mensagem executaQuery(QString);
    Mensagem executaDML(QString);

private:
    QString banco;
    QString servidor;
    QString usuarioBanco;
    QString senhaUsuarioBanco;
	QSqlDatabase db;
};

#endif // CONEXAO
